#ifndef plugin_modbus_H
#define plugin_modbus_H
// #include <QWidget>
#include "../../IPlugin.h"
#include "modbus_serialport.h"
// #include "ui_plugin_modbus.h" // 包含生成的UI头文件
QT_BEGIN_NAMESPACE
namespace Ui
{
class plugin_modbus;
}
QT_END_NAMESPACE

class plugin_modbus : public IPlugin
{
    Q_OBJECT
    Q_INTERFACES(IPlugin)
    Q_PLUGIN_METADATA(IID "com.example.IPlugin/1.0" FILE "plugin_modbus.json")

public:
    QString pluginName() const override { return "plugin_modbus"; }
    QString version() const override { return "1.0"; }

    QWidget *createUI(QWidget *parent) override
    {
        // pluginWidget = new QWidget(parent);
        // plugin_modbus_ui = new Ui::plugin_modbus(); // 创建UI实例
        // plugin_modbus_ui->setupUi(pluginWidget);    // 设置UI到widget
        // return pluginWidget;
        return NULL;
    }
    void sendMessageToPlugin(const QString &msg) override;
    ~plugin_modbus()
    {
        // delete plugin_modbus_ui; // 确保释放内存
    }

private:
    // Ui::plugin_modbus *plugin_modbus_ui = nullptr; // UI指针成员
    // QWidget *pluginWidget;
    modbus_serialport modbus_interface;
    void processJsonCommand(const QString &jsonStr); // 解析json命令并处理
    void initUi();
};
#endif // plugin_modbus_H
